#+TITLE: README

* About

Originally intended to turn emacs into an IDE, but now just my
personal set of el files to replace my .emacs config.

Clone protoculture into your .emacs.d and then add this to your .emacs
file.

#+BEGIN_SRC lisp
(add-to-list 'load-path (expand-file-name "~/.emacs.d/protoculture/src"))
(require 'protoculture)
#+END_SRC

To customize features or add to an existing init.el or .emacs file, it
might look like the following with your own custom theme and face
vars:

#+BEGIN_SRC lisp
(add-to-list 'load-path (expand-file-name "~/.emacs.d/protoculture/src"))
(require 'protoculture-packages)
(require 'protoculture-dired)
(require 'protoculture-backup-directory-alist)
(require 'protoculture-comment)
(require 'protoculture-indentation)
(require 'protoculture-autocomplete)
(require 'protoculture-snippet)
#+END_SRC

* License

Copyright 2017 vaeringjar  
Code distributed under the AGPLv3+.  

* Roadmap
** Cycle 0
*** Migrate all personal config into protoculture

For now, some of this resides in uncommited sandbox.el.  

- eide
- gnus, erc, magit, org-mode settings
- c/cpp type languages development
- java and python development

** Cycle 1
*** Full stack web developer tools for enterprise applications

Due to the omnipotent role of full stack, this might not include
everything.

**** Project Management
- org-mode
**** Documentation
- markdown-mode
**** Version Control
- magit
**** Packaging
- guix
**** Thick Clients
- html5
- css
- javascript
**** API Clients, eg data imports
- Python
**** Server Backend
- _TBD, probably Django+Python or Grails+Groovy._
**** Database
- _TBD, probably MySQL/MariaDB or Postgres._

* Global Packages

These help with any init and have little or no configuration.  

** Colour Themes
- [custom themes](https://www.emacswiki.org/emacs/CustomThemes)
- [color-theme](https://www.emacswiki.org/emacs/ColorThemes)

    M-x color-theme-select

- This assumes my fork of
  [cyberpunk-2019-theme](https://notabug.org/vaeringjar/cyberpunk-2019)
  manually installed.

** Error
*** Checking/Lint
- [Flycheck](http://www.flycheck.org/)

*** Prevention
- [ParEdit](https://mumble.net/~campbell/emacs/paredit.html)

** Project Awareness
- [Projectile](https://github.com/bbatsov/projectile)

    M-x projectile-mode

** Refactoring
- [Iedit](http://www.emacswiki.org/emacs/Iedit)

* Troubleshooting
** Failure to load package

The emacs-goodies-el meta package from apt no longer seems to work, so
one should avoid using it. If already installed, remove it and then
reinstall all emacs packages within the editor.

** Key Bindings
- C-h b (or M-x describe-bindings)
- C-h f (or M-x describe-function)
- C-h k (M-x describe-key)
- C-h m (M-x describe-mode)

** Gnus
Gnus with some versions of Emacs seems to have an issue loading the
.gnus file relative to ~/ when the Emacs init file does not reside in
~/. However, .authinfo and .newsrc seem to load just fine. As a
workaround, use `make prime f=build/whichever.el` to place a .emacs
file in ~/.

* See also

- [[https://notabug.org/peers/peers-bounty-hunts/src/master/projects/integrated-development-environment-emacs.md][IDE over emacs]]

* References
** Emacs
For general purpose documentation for Emacs:  
- [GNU Emacs Manuals Online](https://www.gnu.org/software/emacs/manual/)
- [EmacsWiki](https://www.emacswiki.org/)

** See Also
- [EmacsWiki: StarterKits](https://www.emacswiki.org/emacs/StarterKits)
